﻿using Furion;
using Furion.JsonSerialization;
using SqlSugar;
using System;
using System.Collections.Generic;

namespace TimeJob.Core;

/// <summary>
/// 数据库上下文对象
/// </summary>
public static class DbContext
{
    /// <summary>
    /// SqlSugar 数据库实例
    /// </summary>
    public static readonly SqlSugarScope Instance = new(
        // 读取 appsettings.json 中的 ConnectionConfigs 配置节点
        App.GetConfig<List<ConnectionConfig>>("ConnectionConfigs")
        , db =>
        {
            // 这里配置全局事件，比如拦截执行 SQL
            // 单例参数配置，所有上下文生效
            db.Aop.OnLogExecuting = (sql, pars) =>
            {
                //获取原生SQL推荐 5.1.4.63  性能OK
                //Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
            };

            db.Aop.OnError = (exp) =>
            {
                // 这里可以记录日志
                Console.WriteLine(exp.Message);
            };

        });
}
